package com.yc.cloud.openai.dto.resp.aigc;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@NoArgsConstructor
@Data
public class StableDiffusionInfoDto {

    @JsonProperty("prompt")
    private String prompt;
    @JsonProperty("all_prompts")
    private List<String> allPrompts;
    @JsonProperty("negative_prompt")
    private String negativePrompt;
    @JsonProperty("all_negative_prompts")
    private List<String> allNegativePrompts;
    @JsonProperty("seed")
    private Long seed;
    @JsonProperty("all_seeds")
    private List<Long> allSeeds;
    @JsonProperty("subseed")
    private Long subseed;
    @JsonProperty("all_subseeds")
    private List<Long> allSubseeds;
    @JsonProperty("subseed_strength")
    private Integer subseedStrength;
    @JsonProperty("width")
    private Integer width;
    @JsonProperty("height")
    private Integer height;
    @JsonProperty("sampler_name")
    private String samplerName;
    @JsonProperty("cfg_scale")
    private Integer cfgScale;
    @JsonProperty("steps")
    private Integer steps;
    @JsonProperty("batch_size")
    private Integer batchSize;
    @JsonProperty("restore_faces")
    private Boolean restoreFaces;
    @JsonProperty("face_restoration_model")
    private Object faceRestorationModel;
    @JsonProperty("sd_model_name")
    private String sdModelName;
    @JsonProperty("sd_model_hash")
    private String sdModelHash;
    @JsonProperty("sd_vae_name")
    private Object sdVaeName;
    @JsonProperty("sd_vae_hash")
    private Object sdVaeHash;
    @JsonProperty("seed_resize_from_w")
    private Integer seedResizeFromW;
    @JsonProperty("seed_resize_from_h")
    private Integer seedResizeFromH;
    @JsonProperty("denoising_strength")
    private Object denoisingStrength;
//    @JsonProperty("extra_generation_params")
//    private ExtraGenerationParamsDTO extraGenerationParams;
    @JsonProperty("index_of_first_image")
    private Integer indexOfFirstImage;
    @JsonProperty("infotexts")
    private List<String> infotexts;
    @JsonProperty("styles")
    private List<?> styles;
    @JsonProperty("job_timestamp")
    private String jobTimestamp;
    @JsonProperty("clip_skip")
    private Integer clipSkip;
    @JsonProperty("is_using_inpainting_conditioning")
    private Boolean isUsingInpaintingConditioning;
    @JsonProperty("version")
    private String version;

}
